/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.examat.parser.entidades;

import java.io.Serializable;
import javax.persistence.*;

/**
 *
 * @author Fer
 */
@Entity
@Table(name = "examen")
@NamedQueries({
    @NamedQuery(name = "Examen.findAll", query = "SELECT e FROM Examen e"),
    @NamedQuery(name = "Examen.findByRespuestaAlumno", query = "SELECT e FROM Examen e WHERE e.respuestaAlumno = :respuestaAlumno"),
    @NamedQuery(name = "Examen.findByIncisoRespuesta", query = "SELECT e FROM Examen e WHERE e.incisoRespuesta = :incisoRespuesta"),
    @NamedQuery(name = "Examen.findByClaveUnicaAlumno", query = "SELECT e FROM Examen e WHERE e.examenPK.claveUnicaAlumno = :claveUnicaAlumno"),
    @NamedQuery(name = "Examen.findByIdPregunta", query = "SELECT e FROM Examen e WHERE e.examenPK.idPregunta = :idPregunta")})
public class Examen implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ExamenPK examenPK;
    @Basic(optional = false)
    @Column(name = "RespuestaAlumno")
    private int respuestaAlumno;
    @Basic(optional = false)
    @Column(name = "IncisoRespuesta")
    private char incisoRespuesta;

    public Examen() {
    }

    public Examen(ExamenPK examenPK) {
        this.examenPK = examenPK;
    }

    public Examen(ExamenPK examenPK, int respuestaAlumno, char incisoRespuesta) {
        this.examenPK = examenPK;
        this.respuestaAlumno = respuestaAlumno;
        this.incisoRespuesta = incisoRespuesta;
    }

    public Examen(int claveUnicaAlumno, int idPregunta) {
        this.examenPK = new ExamenPK(claveUnicaAlumno, idPregunta);
    }

    public ExamenPK getExamenPK() {
        return examenPK;
    }

    public void setExamenPK(ExamenPK examenPK) {
        this.examenPK = examenPK;
    }

    public int getRespuestaAlumno() {
        return respuestaAlumno;
    }

    public void setRespuestaAlumno(int respuestaAlumno) {
        this.respuestaAlumno = respuestaAlumno;
    }

    public char getIncisoRespuesta() {
        return incisoRespuesta;
    }

    public void setIncisoRespuesta(char incisoRespuesta) {
        this.incisoRespuesta = incisoRespuesta;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (examenPK != null ? examenPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Examen)) {
            return false;
        }
        Examen other = (Examen) object;
        if ((this.examenPK == null && other.examenPK != null) || (this.examenPK != null && !this.examenPK.equals(other.examenPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.examat.parser.entidades.Examen[ examenPK=" + examenPK + " ]";
    }
    
}
